home *** CD-ROM | disk | FTP | other *** search
- .GLOBL COPYW
- .GLOBL COPYB
- .GLOBL MOVE
-
- .TEXT
- MOVE: cmpa.l a0,a1
- bcc COPYB
- adda.w d0,a0
- adda.w d0,a1
- move.w d0,d1
- lsr.w #3,d0
- not.w d1
- and.w #7,d1
- add.w d1,d1
- jmp sieben1(pc,d1.w)
- loop9: move.b -(a1),-(a0)
- sieben1: move.b -(a1),-(a0)
- move.b -(a1),-(a0)
- move.b -(a1),-(a0)
- move.b -(a1),-(a0)
- move.b -(a1),-(a0)
- move.b -(a1),-(a0)
- move.b -(a1),-(a0)
- dbra d0,loop9
- rts
- ;--------------------------------------------------
- COPYB: move.w d0,d1
- lsr.w #3,d0
- not.w d1
- and.w #7,d1
- add.w d1,d1
- jmp sieben2(pc,d1.w)
- loop10: move.b (a1)+,(a0)+
- sieben2: move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- dbra d0,loop10
- rts
- ;--------------------------------------------------
- COPYW: addq.w #1,d0
- lsr.w #1,d0 ; Anzahl Worte
- btst #0,d0 ; gerade?
- beq.b weiter
- move.w (a1)+,(a0)+
- weiter: move.w d0,d1
- lsr.w #5,d0 ; DIV 31
- not.w d1 ; Rest
- and.w #30,d1 ; MOD 31 aber immer gerade
- jmp sieben3(pc,d1.w)
- loop3: move.l (a1)+,(a0)+
- sieben3: move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- move.l (a1)+,(a0)+
- weiter3: dbra d0,loop3
- ende1: rts
- ;-------------------------------------------------------
- .END
-